Environmental sensors are an important component in modern computer systems, especially high-end servers for commercial and enterprise operations in which reliability is of extreme importance. The environmental sensors are positioned within a computer system to detect environmental conditions that can adversely affect the operation or performance of the computer system. The most common environmental sensors measure temperatures of certain components or at specific locations within the computer system, especially for those components or locations where a large amount of heat is generated or the operation of the system component is relatively sensitive to temperature. Examples of other environmental sensors within the computer system include voltage sensors to sense unacceptable voltages, and fan speed sensors to ensure adequate airflow for cooling.
Heat is generated as a result of conducting electrical currents within various electrical components including semiconductor integrated circuits (ICs), power supplies and other internal components. The amount of heat generated depends upon the type of component and the amount and frequency of current it conducts. A central processing unit (CPU) generates considerable heat because of its constant, very high frequency operation. A power supply, which converts conventional commercial alternating current (AC) power to direct current (DC) power used by the computer components, is usually another significant source of heat. Other components, such as memory ICs, generate relatively moderate amounts of heat due to the more intermittent nature of the electrical currents they conduct. Other components, such as a motherboard which retains many of the significant ICs used in the computer and the temperature sensors associated with them generally represent the overall temperature of multiple grouped components. Other sensors, such as ambient air sensors located on a front panel or backplane of the computer measure the temperature of the ambient air which cools the computer system. An increased temperature of the ambient air diminishes the cooling capacity.
Due to the variable amounts of heat that are generated from the different system components, each component within the computer system that is vital to its continued operation and reliability possesses a dedicated temperature sensor to monitor the temperature or condition of that component. In the event that any of the temperature sensors detects a temperature or condition which exceeds a temperature or condition threshold, the computer system can take the appropriate preventive or remedial action. Each of the environmental sensors produces environmental sensor signals which characterize the current status of the environmental condition sensed by the environmental sensor. The computer system responds to the environmental sensor signals and manages any adverse environmental condition indicated by the environmental sensor signals. Typical responses include logging changing environmental conditions, producing and displaying warning messages about the environmental conditions, and shutting down or turning off the computer system or some portion of it when the environmental condition threatens operation or performance.
A primary consideration for sensing environmental conditions is the technique of supplying signals from the environmental sensors to a central processing unit (CPU) or processor of the computer system which then evaluates the sensor signals and responses to be taken. In one scenario, the environmental sensors continuously provide sensor signals to the processor, but such an approach unduly wastes computational resources. In an alternative scenario in which computational resources are conserved, the environmental sensors provide the sensor signals to the processor intermittently. Two ways of intermittently supplying the sensor signals to the processor are an interrupt routine and a polling routine.
An interrupt routine involves continuously sensing the environmental conditions by the environmental sensors, but the sensor signals are not sent to the processor until they exceed a predetermined threshold which indicates a potentially threatening condition. The computations by the processor are then interrupted and an interrupt service routine is executed to interrogate the environmental sensor, receive the environmental sensor signal, and take an appropriate response.
Because the interrupt routine is event driven, it does not involve transmitting the sensor signals unless a threshold event is detected. In this manner, the interrupt routine conserves computational resources because other processor operations are not delayed unless a potentially threatening condition is detected. However, the interrupt routine requires special hardware, such as separate dedicated interrupt conductors directly connecting each sensor to the processor and threshold determination circuits associated with each environmental sensor to establish the condition under which the interrupt signal is delivered to the processor. Additional conductors linking the environmental condition sensors and the processor are usually difficult and expensive to produce on motherboards where space and connectivity is at a premium.
A polling routine involves continuous sensing of the environmental conditions by the environmental sensors and repetitively “polling” or interrogating and receiving the sensor signals back from the interrogated environmental sensors at a set polling time interval (or polling interval). The polling is conducted over a communication bus which links most of the IC components of the computer system, so no additional conductors are required. Comparing the sensor signals to threshold values is easily accomplished by the processor executed software, thereby eliminating the costs for separate threshold determination circuits associated with each environmental sensor. Initiating an appropriate response is easily integrated with other software controlled actions.
The polling routine is a time interval based routine which occurs repeatedly with a set periodicity regardless of whether or not an adverse condition is detected by the sensor. The polling routine can beneficially provide advanced warning of adverse conditions by monitoring the trends associated with the sensor signals in advance of the actual occurrence of the adverse event. However, the polling routine is inefficient at conserving system resources because of the repetitive nature of the continuous polling of all the sensors.
Many sensed environmental conditions have the potential of changing very quickly and thereby very quickly adversely affecting or threatening the computer system. For example, if a cooling fan on the processor stops operating, or if a heat sink connected to the processor becomes disconnected, the temperature of the processor can rapidly increase to a dangerous level. On the other hand, the ambient air used for cooling the computer system generally does not rapidly increase in temperature. However, the polling routine must be established with a relatively short polling interval to accommodate the critical components having the potential for rapid change, and will inherently consume extra computational resources in the inefficient and needless polling of the less critical environmental sensors at the same high frequency as the more critical components.